Methods and computing device for bit level signal processing

ABSTRACT

According to various implementations, a device, such as a wireless communication device, carries out the following actions: for each element of a spreading sequence to be applied, determining, based on the element, whether to carry out randomization on a coded data stream, in which each element of the spreading sequence belongs to the set {1, −1, j, −j}; for each element of the spreading sequence for which randomization is determined to be applied, applying, based on the value of the element, one or more randomization techniques to the coded data stream; modulating the coded data stream; and transmitting the modulated data stream.

TECHNICAL FIELD

The present disclosure is related generally to wireless networks and, more particularly, to methods and a computing device for bit level signal processing.

BACKGROUND

Symbol-level spreading has been widely used in code division multiple access systems, where long spreading sequences are applied to randomize the inter-user and inter-cell interferences. Uplink signals from different users are spread using user-specific scrambling codes and superimposed with each other in shared physical (time/frequency) resources. Though multiple user interference is introduced by non-orthogonal transmission, the quality of service can be guaranteed if the spreading factor is large. However, large spreading factors lead to low data rates, which is not suitable for modern wideband service.

Spreading based non-orthogonal multiple access (NOMA) schemes have been proposed for newer wireless networks, in which the goal is to multiplex larger numbers of users and to achieve higher sum spectral efficiency than orthogonal resource based transmission. Spreading based schemes normally operate at symbol level, where the low inter-user interference is achieved by using low cross-correlation sequences such as WBE sequences, or by using low density spreading codes such as sparse codes. MMSE-SIC receivers can be used to achieve good interference rejection among multiple users at the symbol-level from joint code and spatial domains. However, wireless networks do not currently support symbol-level spreading for uplink data transmission.

DRAWINGS

While the appended claims set forth the features of the present techniques with particularity, these techniques, together with their objects and advantages, may be best understood from the following detailed description taken in conjunction with the accompanying drawings of which:

FIG. 1 is a diagram of a communication network in which various embodiments may be implemented.

FIG. 2 is a diagram of a hardware architecture used by the various components of FIG. 1, according to an embodiment.

FIG. 3 is a block diagram showing transmitter-side processing for NOMA.

FIG. 4 is a block diagram showing transmitter-side processing for NOMA in which UE-specific processing is employed.

FIG. 5A is an example of symbol-level spreading

FIG. 5B is an implementation of spreading by bit-level processing, according to an embodiment.

FIG. 5C is an implementation of spreading by UE-specific modulation, according to an embodiment.

FIG. 6 depicts a bit-to-symbol mapping constellation for QPSK, according to an embodiment.

FIG. 7 depicts a bit-to-symbol mapping constellation for 16QAM, according to an embodiment.

FIG. 8 depicts a bit-to-symbol mapping constellation for 64QAM, according to an embodiment.

FIG. 9 depicts a bit-level processing procedure, according to an embodiment.

DESCRIPTION

According to various embodiments, a device, such as a wireless communication device, carries out the following actions: for each element of a spreading sequence to be applied, determining, based on the element, whether to carry out randomization on a coded data stream, wherein each element of the spreading sequence belongs to the set {1, −1, j, −j}; for each element of the spreading sequence for which randomization is determined to be applied, applying, based on the value of the element, one or more randomization techniques to the coded data stream; modulating the coded data stream; and transmitting the modulated data stream.

In an embodiment, for each element of the spreading sequence for which randomization is determined to be applied, the device carries out bit-level repetition on the coded data stream.

According to an embodiment, applying one or more randomization techniques to the coded data stream involves applying a scrambling technique to the coded data stream.

In an embodiment, applying one or more randomization techniques to the coded data stream involves applying an interleaving technique and applying a scrambling technique to the coded data stream.

According to an embodiment, applying an interleaving technique involves interleaving real and imaginary bits of the code data stream.

In an embodiment, applying a scrambling technique involves scrambling a 1 on a sign bit of a real bit of the code data stream.

According to an embodiment, applying a scrambling technique involves scrambling a 1 on a sign bit of an imaginary bit of the code data stream.

In an embodiment, applying a scrambling technique involves scrambling a 0 on a sign bit of a real bit of the code data stream.

According to an embodiment, applying a scrambling technique involves scrambling a 0 on a sign bit of an imaginary bit of the code data stream.

In an embodiment, the device also applies a spreading sequence to the modulated data stream.

According to an embodiment, modulating the coded data stream involves applying device-specific modulation to the coded data stream.

In an embodiment, the device also carries out bit-to-symbol mapping on the coded data stream.

Prior to further description of the various embodiments, an example of a communication system in which the various techniques described herein may be practiced will now be described with reference to FIG. 1, which depicts a multi-user wireless communication system 100. The communication system 100 includes several wireless communication devices. The communication devices depicted are a first wireless communication device 102 (depicted as a user equipment (“UE”)), a network node 104 (depicted as a base station), and a second wireless communication device 106 (depicted as a UE). It is to be understood that there may be many other communication devices and that the ones represented in FIG. 1 are meant only for the sake of example. In an embodiment, the wireless communication system 100 has many other components that are not depicted in FIG. 1, including other network nodes, other UEs, wireless infrastructure, wired infrastructure, and other devices commonly found in wireless networks. Possible implementations of the wireless communication devices include any device capable of wireless communication, such as a smartphone, tablet, laptop computer, and non-traditional devices (e.g., household appliances or other parts of the “Internet of Things”). When operating as part of a wireless communication system, a wireless communication device may be referred to as a “wireless network node.” A wireless communication device communicates primarily by transmitting and receiving wireless signals.

FIG. 2 illustrates a basic hardware architecture implemented by each of the wireless communication devices of FIG. 1, according to an embodiment. The elements of FIG. 2 may have other components as well. The hardware architecture depicted in FIG. 2 includes logic circuitry 212, memory 214, transceiver 216, and one or more antennas represented by antenna 218 (including transmit antennas and/or receive antennas). The memory 214 may be or include a buffer that, for example, holds incoming transmissions until the logic circuitry is able to process the transmission. Each of these elements is communicatively linked to one another via one or more data pathways 220. Examples of data pathways include wires, conductive pathways on a microchip, and wireless connections.

The term “logic circuitry” as used herein means a circuit (a type of electronic hardware) designed to perform complex functions defined in terms of mathematical logic. Examples of logic circuitry include a microprocessor, a controller, or an application-specific integrated circuit. When the present disclosure refers to a device carrying out an action, it is to be understood that this can also mean that logic circuitry integrated with the device is, in fact, carrying out the action.

FIG. 3 depicts a general structure of transmitter side processing for current wireless systems. Many of the NOMA schemes described herein may involve channel coding with UE-specific bit-level interleaver/scrambling, UE-specific modulation or UE-specific symbol-level spreading (e.g., the three shaded blocks).

Adding NOMA schemes based on bit-level processing may have less impact on currently-used systems because the interleaving and scrambling processing is already being implemented in the transmitter of such systems. According to some implementations, the interleaving pattern for a NOMA system is UE-specific. Furthermore, the design of interleaving patterns or scrambling sequences are constructed so as to minimize the inter-user interferences.

Symbol-level spreading based NOMA schemes may not need to change the bit-level processing blocks from currently implemented designs. In addition, UE-specific spreading sequences are mainly used for UE differentiation and interference reduction. The de-spreading and channel equalization (with consideration of multi-user interferences) can be achieved simultaneously through the MMSE equalization from joint code and spatial domains. A single-user decoder can be assumed for bit-level processing at the receiver side. Therefore, no fundamental change is needed on the receiver side for symbol-level spreading based schemes.

For the symbol level spreading based NOMA schemes, the cross-correlation property of the spreading sequences between different UEs affects the overall system performance. For example, one possible design target for spreading sequences is to meet the Welch-bound equality (WBE) criteria for the cross-correlation among sequences, and to minimize the mean squared error (MSE) per user under the assumption of equal SNR distribution among NOMA users. The cross-correlation is related to the spreading length and the size of sequence pool, e.g., the longer the spreading length, the smaller the overall cross-correlation can be achieved, and if a larger sequence pool is desired to accommodate more UEs at a given spreading factor, higher cross-correlation will occur.

As previously discussed, for the newer systems where the spectral efficiency per UE is usually not very low, the spreading length should not be very long. Given the short spreading length, complex-valued sequences can provide larger sequence pool size compared with pseudo-noise (PN) sequences. For example, the length-L sequence with each of the element picked from {−1, 1, −j, j} has 4^(L) different sequences, while PN sequences (element picked from {−1, 1}) has only 2^(L) different sequences.

Before continuing with the description, some of the terms used herein will now be clarified.

The term “randomization” as used herein refers to randomization of a series of bits (e.g., bits of a data stream). Examples of randomization include applying an interleaver, carrying out scrambling, and a combination of applying an interleaver and carrying out scrambling.

An example of “scrambling” as used herein is as follows: A communication device: 1) Generates a scrambling code whose length is equal to the length of the bits or symbols to be scrambled. 2) The input sequences are masked by the scrambling code.

An example of “bit-level repetition” as used herein is as follows: A communication device: 1) Generates a repeated sequence of 1s. 2) Multiplies an input sequence by an element of the repeated sequence. For example, a communication device generates a repeated sequence of [c1, c1, c1, c1, c2, c2, c2, c2, c3, c3, c3, c3] (assuming an original length-3 sequence and repetition factor of 4) Then, given an input sequence of [c1, c2, c3]T, the communication device multiplies [c1, c2, c3]T by [1, 1, 1, 1] and obtains [c1, c1, c1, c1; c2, c2, c2, c2; c3, c3, c3, c3]. The device then performs a parallel to serial transformation on this 3×4 matrix to obtain the 1×12 vector [c1, c2, c3, c1, c2, c3, c1, c2, c3, c1, c2, c3].

Described below are various techniques for achieving the equivalent results of complex-valued symbol-level spreading by using bit-level processing, according to various embodiments.

FIG. 5A, FIG. 5B, and FIG. 5C illustrate different ways to realize signal processing with the effect of symbol-level spreading.

FIG. 5A illustrates the typical signal processing for symbol-level spreading. The coded binary bits {right arrow over (c)} are mapped to symbol M({right arrow over (c)}) through the modulator, e.g. QPSK, M-QAM. Then the modulated symbol is spread with the length-L spreading sequence {s₁, s₂, . . . , s_(L)} before mapping to the resource elements.

The length-L spreading can be also implemented by L time's bit-level repetition with additional UE-specific interleaving/scrambling or modulation, as depicted in FIG. 5B and FIG. 5C, respectively.

According to an embodiment, the design target is to make sure M({right arrow over (c)})·s_(l)=M({right arrow over (c)}_(l))=M_(l), ({right arrow over (c)}), for each l=1, . . . , L.

In an embodiment, symbol-level spreading with complex-valued elements picked from {1, −1, j, −j } is used. This technique represents the whole modulation constellation rotated by angles {0, pi, pi/2, -pi/2}. The equality between UE-specific modulation and symbol-level spreading can be shown as follow:

$\quad\left\{ \begin{matrix} {{{M_{l}\left( \overset{\rightarrow}{c} \right)} = {M\left( \overset{\rightarrow}{c} \right)}}\ ,} & {{{{if}\mspace{14mu} s_{l}} = 1};} \\ {{{M_{l}\left( \overset{\rightarrow}{c} \right)} = {{M\left( \overset{\rightarrow}{c} \right)}*e^{{- \pi}j}}},} & {{{{if}\mspace{14mu} s_{l}} = {- 1}};} \\ {{{M_{l}\left( \overset{\rightarrow}{c} \right)} = {{M\left( \overset{\rightarrow}{c} \right)}*e^{\frac{\pi}{2}j}}},} & {{{{if}\mspace{14mu} s_{l}} = j};} \\ {{{M_{l}\left( \overset{\rightarrow}{c} \right)} = {{M\left( \overset{\rightarrow}{c} \right)}*e^{{- \frac{\pi}{2}}j}}},} & {{{{if}\mspace{14mu} s_{l}} = {- j}};} \end{matrix} \right.$

According to various embodiments, equivalent bit-level processing based on different modulation orders are presented separately.

Case 1: QPSK

The QPSK constellation denotes each two consecutive coded binary bits {right arrow over (c)}={b₀, b₁} are mapped to one symbol as the following equation (note that the sequential order between b₀, b₁ can be interchanged. The same is true for Cases 2, 3, and 4):

${M\left( \overset{\rightarrow}{c} \right)} = {{\frac{1}{\sqrt{2}}\left\lbrack {\left( {1 - {2b_{0}}} \right) + {j\left( {1 - {2b_{1}}} \right)}} \right\rbrack}.}$

The value b₀ denotes the sign of the real part of the complex-valued modulation symbol, and b₁ denotes the sign of the imaginary part of the complex-valued modulation symbol, as the bit-to-symbol mapping constellation shown in FIG. 6.

if s_(l)=1, then M ({right arrow over (c)})*s_(l)=M({right arrow over (c)}_(l)) and there is no need for bit-level processing, (i.e., {right arrow over (c)}_(l)={right arrow over (c)}.

if s_(l)=−1, then

${{{M\left( \overset{\rightarrow}{c} \right)}*s_{l}} = {{- {\frac{1}{\sqrt{2}}\left\lbrack {\left( {1 - {2b_{0}}} \right) + {j\left( {1 - {2b_{1}}} \right)}} \right\rbrack}} = {{\frac{1}{\sqrt{2}}\left\lbrack {\left( {1 - {2\left( {1 - b_{0}} \right)}} \right) + {j\left( {1 - {2\left( {1 - b_{1}} \right)}} \right)}} \right\rbrack} = {M\left\lbrack {1 - \overset{\rightarrow}{c}} \right\rbrack}}}},$

which can be represented by bit-level scrambling with scrambling sequence {right arrow over (s)}_(l)={1,1}, with no interleaving I_(l)({right arrow over (c)})={right arrow over (c)}. {right arrow over (c)}_(l)=(I_(l)({right arrow over (c)})={right arrow over (s)}_(l)) mod 2=1−{right arrow over (c)}.

if s_(l)−j, then

${{{M\left( \overset{\rightarrow}{c} \right)}*s_{l}} = {{\frac{1}{\sqrt{2}}\left\lbrack {{j\left( {1 - {2b_{0}}} \right)} - \left( {1 - {2b_{1}}} \right)} \right\rbrack} = {{\frac{1}{\sqrt{2}}\left\lbrack {\left( {1 - {2\left( {1 - b_{1}} \right)}} \right) + {j\left( {1 - {2b_{0}}} \right)}} \right\rbrack} = {M\left\lbrack \left\{ {{1 - b_{1}},b_{0}} \right\} \right\rbrack}}}},$

which can be represented by bit-level interleaving and scrambling, as the interleaving pattern

$\quad\left\{ \begin{matrix} {{{I_{l}\left( b_{0} \right)} = b_{1}},} \\ {{I_{l}\left( b_{1} \right)} = b_{0}} \end{matrix} \right.$

and the scrambling sequence {right arrow over (s)}_(l)={1,0}. {right arrow over (c)}_(l)=(I_(l)({right arrow over (c)})+{right arrow over (s)}_(l)mod 2={1−b₁, b₀}.

if s_(l)=−j , then

${{{M\left( \overset{\rightarrow}{c} \right)}*s_{l}} = {{\frac{1}{\sqrt{2}}\left\lbrack {{- {j\left( {1 - {2b_{0}}} \right)}} + \left( {1 - {2b_{1}}} \right)} \right\rbrack} = {{\frac{1}{\sqrt{2}}\left\lbrack {\left( {1 - {2b_{1}}} \right) + {j\left( {1 - {2\left( {1 - b_{0}} \right)}} \right)}} \right\rbrack} = {M\left\lbrack \left\{ {b_{1},{1 - b_{0}}} \right\} \right\rbrack}}}},$

which can be represented by bit-level interleaving and scrambling, as the interleaving pattern

$\quad\left\{ \begin{matrix} {{{I_{l}\left( b_{0} \right)} = b_{1}},} \\ {{I_{l}\left( b_{1} \right)} = b_{0}} \end{matrix} \right.$

and the scrambling sequence {right arrow over (s)}_(l)={0,1}. {right arrow over (c)}_(l)=(I_(l)({right arrow over (c)})+{right arrow over (s)}_(l)) mod 2={b₁, 1−b₀}.

Case 2:16 QAM

The 16QAM constellation denotes each four consecutive coded binary bits {right arrow over (c)}={b₀, b₁, b₂, b₃} are mapped to one symbol as the following equation:

${M\left( \overset{\rightarrow}{c} \right)} = {\frac{1}{\sqrt{10}}{\left\{ {{\left( {1 - {2b_{0}}} \right)\left\lbrack {2 - \left( {1 - {2b_{2}}} \right)} \right\rbrack} + {{j\left( {1 - {2b_{1}}} \right)}\left\lbrack {2 - \left( {1 - {2b_{3}}} \right)} \right\rbrack}} \right\}.}}$

if s_(l)=1, then M({right arrow over (c)})*s_(l)=M({right arrow over (c)}_(l)) and there is no need for bit-level processing, (i.e., {right arrow over (c)}_(l)={right arrow over (c)}).

if _(l)=−1, then

${{M\left( \overset{\rightarrow}{c} \right)}*s_{l}} = {{{- \frac{1}{\sqrt{10}}}\left\{ {{\left( {1 - {2b_{0}}} \right)\left\lbrack {2 - \left( {1 - {2b_{2}}} \right)} \right\rbrack} - {{j\left( {1 - {2b_{1}}} \right)}\left\lbrack {2 - \left( {1 - {2b_{3}}} \right)} \right\rbrack}} \right\}} = {{\frac{1}{\sqrt{10}}\left\{ {{\left( {1 - {2\left( {1 - b_{0}} \right)}} \right)\left\lbrack {2 - \left( {1 - {2b_{2}}} \right)} \right\rbrack} + {{j\left( {1 - {2\left( {1 - b_{1}} \right)}} \right)}\left\lbrack {2 - \left( {1 - {2b_{3}}} \right)} \right\rbrack}} \right\}} = {M\left( \left\{ {{1 - b_{0}},{1 - b_{1}},b_{2},b_{3}} \right\} \right)}}}$

which can be represented by bit-level scrambling with scrambling sequence {right arrow over (s)}_(l)={1,1,0,0}, with no interleaving I_(l)({right arrow over (c)})={right arrow over (c)}_(l). {right arrow over (c)}_(l) _(l)(I_(l)({right arrow over (c)})+{right arrow over (s)}_(l)) mod 2={1−b₀,1−b₁, b₂, b₃}.

if s_(l)=j, then

${{M\left( \overset{\rightarrow}{c} \right)}*s_{l}} = {{\frac{1}{\sqrt{10}}\left\{ {{{j\left( {1 - {2b_{0}}} \right)}\left\lbrack {2 - \left( {1 - {2b_{2}}} \right)} \right\rbrack} - {\left( {1 - {2b_{1}}} \right)\left\lbrack {2 - \left( {1 - {2b_{3}}} \right)} \right\rbrack}} \right\}} = {{\frac{1}{\sqrt{10}}\left\{ {{\left( {1 - {2\left( {1 - b_{1}} \right)}} \right)\left\lbrack {2 - \left( {1 - {2b_{3}}} \right)} \right\rbrack} + {{j\left( {1 - {2b_{0}}} \right)}\left\lbrack {2 - \left( {1 - {2b_{2}}} \right)} \right\rbrack}} \right\}} = {M\left( \left\{ {{1 - b_{1}},b_{0},b_{3},b_{2}} \right\} \right)}}}$

which can be represented by bit-level interleaving and scrambling, as the interleaving pattern

$\quad\left\{ \begin{matrix} {{I_{l}\left( b_{0} \right)} = b_{1}} \\ {{I_{l}\left( b_{1} \right)} = b_{0}} \\ {{I_{l}\left( b_{2} \right)} = b_{3}} \\ {{I_{l}\left( b_{3} \right)} = b_{2}} \end{matrix} \right.$

and the scrambling sequence {right arrow over (s)}_(l)={1,0,0,0}{right arrow over (c)}_(l)=(I_(l)({right arrow over (c)})+{right arrow over (s)}_(l)) mod 2=mod 2={1−b₁, b₀, b₃, b₂}

if s_(l)=−j, then

${{M\left( \overset{\rightarrow}{c} \right)}*s_{l}} = {{\frac{1}{\sqrt{10}}\left\{ {{- {{j\left( {1 - {2b_{0}}} \right)}\left\lbrack {2 - \left( {1 - {2b_{2}}} \right)} \right\rbrack}} + {\left( {1 - {2b_{1}}} \right)\left\lbrack {2 - \left( {1 - {2b_{3}}} \right)} \right\rbrack}} \right\}} = {{\frac{1}{\sqrt{10}}\left\{ {{\left( {1 - {2b_{1}}} \right)\left\lbrack {2 - \left( {1 - {2b_{3}}} \right)} \right\rbrack} + {{j\left( {1 - {2\left( {1 - b_{0}} \right)}} \right)}\left\lbrack {2 - \left( {1 - {2b_{2}}} \right)} \right\rbrack}} \right\}} = {M\left( \left\{ {b_{1},{1 - b_{0}},b_{3},b_{2}} \right\} \right)}}}$

which can be represented by bit-level interleaving and scrambling, as the interleaving

${pattern}\mspace{14mu} \left\{ \begin{matrix} {{I_{l}\left( b_{0} \right)} = b_{1}} \\ {{I_{l}\left( b_{1} \right)} = b_{0}} \\ {{I_{l}\left( b_{2} \right)} = b_{3}} \\ {{I_{l}\left( b_{3} \right)} = b_{2}} \end{matrix} \right.$

and the scrambling sequence {right arrow over (s)}_(l)={0,1,0,0}. {right arrow over (c)}_(l)=(I_(l)+{right arrow over (s)}_(l)) mod 2={b₁, 1−b₀, b₃, b₂}

Case 3: 64QAM

The 64QAM constellation denotes each six consecutive coded binary bits {right arrow over (c)}={b₀, b₁, b₂, b₃, b₄, b₅} are mapped to one symbol as the following equation:

${M\left( \overset{\rightarrow}{c} \right)} = {\frac{1}{\sqrt{42}}{\left\{ {{\left( {1 - {2b_{0}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{2}}} \right)\left\lbrack {2 - \left( {1 - {2b_{4}}} \right)} \right\rbrack}} \right\rbrack} + {{j\left( {1 - {2b_{1}}} \right)}\left\lbrack {4 - {\left( {1 - {2b_{3}}} \right)\left\lbrack {2 - \left( {1 - {2b_{5}}} \right)} \right\rbrack}} \right\rbrack}} \right\}.}}$

The bit-to-symbol mapping constellation for 64QAM is shown in FIG. 8. Basically, b₀ denotes the sign of the real part of the complex-valued modulation symbol, b₁ denotes the sign of the imaginary part, b₂ and b₄ are used to distinguish different coefficients of the real part (columns on the constellation), b₃ and b₅ are used to distinguish different coefficients of the imaginary part (rows on the constellation) of the complex-valued modulation symbol.

if s_(l)=1, M({right arrow over (c)})*s_(l)=M({right arrow over (c)}_(l)) and there is no need for bit-level processing.

if s_(l)=−1, then

${{M\left( \overset{\rightarrow}{c} \right)}*s_{l}} = {{{- \frac{1}{\sqrt{42}}}\left\{ {{\left( {1 - {2b_{0}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{2}}} \right)\left\lbrack {2 - \left( {1 - {2b_{4}}} \right)} \right\rbrack}} \right\rbrack} - {{j\left( {1 - {2b_{1}}} \right)}\left\lbrack {4 - {\left( {1 - {2b_{3}}} \right)\left\lbrack {2 - \left( {1 - {2b_{5}}} \right)} \right\rbrack}} \right\rbrack}} \right\}} = {{\frac{1}{\sqrt{42}}\left\{ {{\left( {1 - {2\left( {1 - b_{0}} \right)}} \right)\left\lbrack {4 - {\left( {1 - {2b_{2}}} \right)\left\lbrack {2 - \left( {1 - {2b_{4}}} \right)} \right\rbrack}} \right\rbrack} + {{j\left( {1 - {2\left( {1 - b_{1}} \right)}} \right)}\left\lbrack {4 - {\left( {1 - {2b_{3}}} \right)\left\lbrack {2 - \left( {1 - {2b_{5}}} \right)} \right\rbrack}} \right\rbrack}} \right\}} = {M\left( \left\{ {{1 - b_{0}},{1 - b_{1}},b_{2},b_{3},b_{4},b_{5}} \right\} \right)}}}$

which can be represented by bit-level scrambling with scrambling sequence {right arrow over (s)}_(l)={1,1,0,0,0,0}, with no interleaving I_(l)({right arrow over (c)}_(l))={right arrow over (c)} and {right arrow over (c)}_(l) =(I_(l)({right arrow over (c)}) +{right arrow over (s)}_(l)) mod 2={1−b₀, 1−b₁, b₂, b₃, b₄, b₅}.

if s_(l)=j, then

${{M\left( \overset{\rightarrow}{c} \right)}*s_{1}} = {{j\frac{1}{\sqrt{42}}\left\{ {{\left( {1 - {2b_{0}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{2}}} \right)\left\lbrack {2 - \left( {1 - {2b_{4}}} \right)} \right\rbrack}} \right\rbrack} - {\left( {1 - {2b_{1}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{3}}} \right)\left\lbrack {2 - \left( {1 - {2b_{5}}} \right)} \right\rbrack}} \right\rbrack}} \right\}} = {{\frac{1}{\sqrt{42}}\left\{ {{\left( {1 - {2\left( {1 - b_{1}} \right)}} \right)\left\lbrack {4 - {\left( {1 - {2b_{3}}} \right)\left\lbrack {2 - \left( {1 - {2b_{5}}} \right)} \right\rbrack}} \right\rbrack} + {{j\left( {1 - {2b_{0}}} \right)}\left\lbrack {4 - {\left( {1 - {2b_{2}}} \right)\left\lbrack {2 - \left( {1 - {2b_{4}}} \right)} \right\rbrack}} \right\rbrack}} \right\}} = {M\left( \left\{ {{1 - b_{1}},b_{0},b_{3},b_{2},b_{5},b_{4}} \right\} \right)}}}$

which can be represented by bit-level interleaving and scrambling, as the interleaving pattern

$\quad\left\{ \begin{matrix} {{I_{l}\left( b_{0} \right)} = b_{1}} \\ {{I_{l}\left( b_{1} \right)} = b_{0}} \\ {{I_{l}\left( b_{2} \right)} = b_{3}} \\ {{I_{l}\left( b_{3} \right)} = b_{2}} \\ {{I_{l}\left( b_{4} \right)} = b_{5}} \\ {{I_{l}\left( b_{5} \right)} = b_{4}} \end{matrix} \right.$

and the scrambling sequence {right arrow over (s)}_(l)={1,0,0,0,0,0} {right arrow over (c)}_(l)=(I_(l)({right arrow over (c)})+{right arrow over (s)}_(l))mod 2={1−b₁, b₀, b₃, b₂, b₅, b₄}

if s_(l)=−j, then

${{M\left( \overset{\rightarrow}{c} \right)}*s_{l}} = {{{- j}\frac{1}{\sqrt{42}}\left\{ {{\left( {1 - {2b_{0}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{2}}} \right)\left\lbrack {2 - \left( {1 - {2b_{4}}} \right)} \right\rbrack}} \right\rbrack} + {\left( {1 - {2b_{1}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{3}}} \right)\left\lbrack {2 - \left( {1 - {2b_{5}}} \right)} \right\rbrack}} \right\rbrack}} \right\}} = {{\frac{1}{\sqrt{42}}\left\{ {{\left( {1 - {2b_{1}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{3}}} \right)\left\lbrack {2 - \left( {1 - {2b_{5}}} \right)} \right\rbrack}} \right\rbrack} + {{j\left( {1 - {2\left( {1 - b_{0}} \right)}} \right)}\left\lbrack {4 - {\left( {1 - {2b_{2}}} \right)\left\lbrack {2 - \left( {1 - {2b_{4}}} \right)} \right\rbrack}} \right\rbrack}} \right\}} = {M\left( \left\{ {b_{1},{1 - b_{0}},b_{3},b_{2},b_{5},b_{4}} \right\} \right)}}}$

which can be represented by bit-level interleaving and scrambling, as the interleaving pattern

$\quad\left\{ \begin{matrix} {{I_{l}\left( b_{0} \right)} = b_{1}} \\ {{I_{l}\left( b_{1} \right)} = b_{0}} \\ {{I_{l}\left( b_{2} \right)} = b_{3}} \\ {{I_{l}\left( b_{3} \right)} = b_{2}} \\ {{I_{l}\left( b_{4} \right)} = b_{5}} \\ {{I_{l}\left( b_{5} \right)} = b_{4}} \end{matrix} \right.$

and the scrambling sequence {right arrow over (s)}_(l)={0,1,0,0,0,0} {right arrow over (c)}_(l)=(I_(l)({right arrow over (c)})+mod 2={b₁,1−b₀, b₃, b₂, b₅, b₄}

Case 4: 256QAM

The 256QAM constellation denotes each six consecutive coded binary bits{right arrow over (c)}={b₀, b₁, b₂, b₃, b₄, b₅, b₆, b₇} are mapped to one symbol as the following equation:

${M\left( \overset{\rightarrow}{c} \right)} = {\frac{1}{\sqrt{170}}\left\{ {{\left( {1 - {2b_{0}}} \right)\left\lbrack {8 - {\left( {1 - {2b_{2}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{4}}} \right)\left\lbrack {2 - \left( {1 - {2b_{6}}} \right)} \right\rbrack}} \right\rbrack}} \right\rbrack} + {{j\left( {1 - {2b_{1}}} \right)}\left\lbrack {8 - {\left( {1 - {2b_{3}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{5}}} \right)\left\lbrack {2 - \left( {1 - {2b_{7}}} \right)} \right\rbrack}} \right\rbrack}} \right\rbrack}} \right\}}$

For simplicity, the bit-to-symbol mapping constellation for 256QAM has not been plotted. The value b₀ denotes the sign of the real part of the complex-valued modulation symbol, b₁ denotes the sign of the imaginary part, b₂, b₄, and b₆ are used to distinguish different coefficients of the real part (columns on the constellation), b₃, b₅ and b₇ are used to distinguish different coefficients of the imaginary part (rows on the constellation) of the complex-valued modulation symbol.

if s_(l)=1, then M({right arrow over (c)})*s_(l)=M({right arrow over (c)}_(l)) and there is no need for bit-level processing.

if s_(l)=−1, then

${{M\left( \overset{\rightarrow}{c} \right)}*s_{l}} = {{{- \frac{1}{\sqrt{170}}}\left\{ {{\left( {1 - {2b_{0}}} \right)\left\lbrack {8 - {\left( {1 - {2b_{2}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{4}}} \right)\left\lbrack {2 - \left( {1 - {2b_{6}}} \right)} \right\rbrack}} \right\rbrack}} \right\rbrack} - {{j\left( {1 - {2b_{1}}} \right)}\left\lbrack {8 - {\left( {1 - {2b_{3}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{5}}} \right)\left\lbrack {2 - \left( {1 - {2b_{7}}} \right)} \right\rbrack}} \right\rbrack}} \right\rbrack}} \right\}} = {M\left( \left\{ {{1 - b_{0}},{1 - b_{1}},b_{2},b_{3},b_{4},b_{5},b_{6},b_{7}} \right\} \right)}}$

which can be represented by bit-level scrambling with scrambling sequence {right arrow over (s)}_(l)={1,1,0,0,0,0,0,0}, with no interleaving I_(l)({right arrow over (c)})={right arrow over (c)}_(l), and {right arrow over (c)}_(l)=(I_(l)({right arrow over (c)})+{right arrow over (s)}_(l)) mod 2={1−b₀, 1−b₁, b₂, b₃, b₄, b₅, b₆, b₇}.

if s_(l)=j, then

${{M\left( \overset{\rightarrow}{c} \right)}*s_{l}} = {{j\frac{1}{\sqrt{170}}\left\{ {{\left( {1 - {2b_{0}}} \right)\left\lbrack {8 - {\left( {1 - {2b_{2}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{4}}} \right)\left\lbrack {2 - \left( {1 - {2b_{6}}} \right)} \right\rbrack}} \right\rbrack}} \right\rbrack} - {\left( {1 - {2b_{1}}} \right)\left\lbrack {8 - {\left( {1 - {2b_{3}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{5}}} \right)\left\lbrack {2 - \left( {1 - {2b_{7}}} \right)} \right\rbrack}} \right\rbrack}} \right\rbrack}} \right\}} = {M\left( \left\{ {{1 - b_{1}},\ b_{0},b_{3},b_{2},b_{5},b_{4},b_{7},b_{6}} \right\} \right)}}$

which can be represented by bit-level interleaving and scrambling, as the interleaving pattern

$\quad\left\{ \begin{matrix} {{I_{l}\left( b_{0} \right)} = b_{1}} \\ {{I_{l}\left( b_{1} \right)} = b_{0}} \\ {{I_{l}\left( b_{2} \right)} = b_{3}} \\ {{I_{l}\left( b_{3} \right)} = b_{2}} \\ {{I_{l}\left( b_{4} \right)} = b_{5}} \\ {{I_{l}\left( b_{6} \right)} = b_{7}} \\ {{I_{l}\left( b_{7} \right)} = b_{6}} \end{matrix} \right.$

and the scrambling sequence {right arrow over (s)}_(l)={1,0,0,0,0,0,0,0} {right arrow over (c)}_(l)=(I_(l)({right arrow over (c)}+{right arrow over (s)}_(l)) mod 2={1−b₁, b₀, b₃, b₂, b₅, b₄, b₇, b₆}

if s_(l)=−j, then

${{M\left( \overset{\rightarrow}{c} \right)}*s_{l}} = {{{- j}\frac{1}{\sqrt{170}}\left\{ {{\left( {1 - {2b_{0}}} \right)\left\lbrack {8 - {\left( {1 - {2b_{2}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{4}}} \right)\left\lbrack {2 - \left( {1 - {2b_{6}}} \right)} \right\rbrack}} \right\rbrack}} \right\rbrack} + {\left( {1 - {2b_{1}}} \right)\left\lbrack {8 - {\left( {1 - {2b_{3}}} \right)\left\lbrack {4 - {\left( {1 - {2b_{5}}} \right)\left\lbrack {2 - \left( {1 - {2b_{7}}} \right)} \right\rbrack}} \right\rbrack}} \right\rbrack}} \right\}} = {M\left( \left\{ {b_{1},{1 - b_{0}},b_{3},b_{2},b_{5},b_{4},b_{7},b_{6}} \right\} \right)}}$

which can be represented by bit-level interleaving and scrambling, as the interleaving pattern

$\quad{\quad\left\{ \begin{matrix} {{I_{l}\left( b_{0} \right)} = b_{1}} \\ {{I_{l}\left( b_{1} \right)} = b_{0}} \\ {{I_{l}\left( b_{2} \right)} = b_{3}} \\ {{I_{l}\left( b_{3} \right)} = b_{2}} \\ {{I_{l}\left( b_{4} \right)} = b_{5}} \\ {{I_{l}\left( b_{6} \right)} = b_{7}} \\ {{I_{l}\left( b_{7} \right)} = b_{6}} \end{matrix} \right.}$

and the scrambling sequence {right arrow over (s)}_(l)={0,1,0,0,0,0,0,0}{right arrow over (c)}_(l)=(I_(l)({right arrow over (c)})+{right arrow over (s)}_(l) mod 2={b₁, 1−b₀, b₃, b₂, b₅, b₄, b₇, b₆}

The processing procedure can be concluded as depicted in FIG. 9. Note that for any M-QAM (with order Q) complex-valued modulation constellation, which is symmetrical about the both axes, assuming there are two sign bits indicating the real part and imaginary part of the modulated symbol respectively, half of the remaining (Q-2) bits denote the coefficients of the real part and the other half of the remaining (Q-2) bits with odd denote the coefficients of imaginary part, the symbol-level spreading with the element of spreading sequence taken from {1, −1, j, −j} can be realized by the bit-level repetition techniques discussed herein plus interleaving and/or scrambling, where the interleaver can interchange the bits denoting the real part and imaginary part, and the scrambling is used to shift the sign bits.

It should be understood that the exemplary embodiments described herein should be considered in a descriptive sense only and not for purposes of limitation. Descriptions of features or aspects within each embodiment should typically be considered as available for other similar features or aspects in other embodiments. It will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from their spirit and scope of as defined by the following claims. For example, the steps of the various methods can be reordered in ways that will be apparent to those of skill in the art. 

1. A method, carried out by a wireless communication device, comprising: determining, for an element from a plurality of elements of a spreading sequence based on the element, whether to perform randomization on a coded data stream, wherein each element of the spreading sequence belongs to the set {1, −1, j, −j}; applying to each element of the spreading sequence, based on the value of the element, for which randomization is determined to be applied, one or more randomization techniques to the coded data stream; modulating the coded data stream; and transmitting the modulated data stream.
 2. The method of claim 1, further comprising: performing bit-level repetition on the coded data stream for each element of the spreading sequence for which randomization is determined to be applied.
 3. The method of claim 1, wherein the applying one or more randomization techniques to the coded data stream comprises applying a scrambling technique to the coded data stream.
 4. The method of claim 1, wherein the applying one or more randomization techniques to the coded data stream comprises applying an interleaving technique and applying a scrambling technique to the coded data stream.
 5. The method of claim 4, wherein the applying an interleaving technique comprises interleaving real and imaginary bits of the code data stream.
 6. The method of claim 4, wherein the applying a scrambling technique comprises scrambling a 1 on a sign bit of a real bit of the code data stream.
 7. The method of claim 4, wherein the applying a scrambling technique comprises scrambling a 1 on a sign bit of an imaginary bit of the code data stream.
 8. The method of claim 4, wherein the applying a scrambling technique comprises scrambling a 0 on a sign bit of a real bit of the code data stream.
 9. The method of claim 4, wherein the applying a scrambling technique comprises scrambling a 0 on a sign bit of an imaginary bit of the code data stream
 10. The method of claim 1, further comprising: applying a spreading sequence to the modulated data stream.
 11. The method of claim 1, wherein the modulating the coded data stream comprises applying a device-specific modulation to the coded data stream.
 12. The method of claim 1, further comprising: carrying out a bit-to-symbol mapping on the coded data stream. 13.-15. (canceled)
 16. An apparatus comprising: logic circuitry configured to perform operations comprising: determining, for an element from a plurality of elements of a spreading sequence based on the element, whether to perform randomization on a coded data stream, wherein each element of the spreading sequence belongs to the set {1, −1, j, −j}; applying to each element of the spreading sequence, based on the value of the element, for which randomization is determined to be applied, one or more randomization techniques to the coded data stream; modulating the coded data stream; and transmitting the modulated data stream.
 17. The apparatus of claim 16, wherein the operations further comprise: performing bit-level repetition on the coded data stream for each element of the spreading sequence for which randomization is determined to be applied.
 18. The apparatus of claim 16, wherein the operations further comprise: applying a spreading sequence to the modulated data stream.
 19. A non-transitory computer readable medium including executable code that when executed by a logic circuitry performs operations comprising: determining, for an element from a plurality of elements of a spreading sequence based on the element, whether to perform randomization on a coded data stream, wherein each element of the spreading sequence belongs to the set {1, −1, j, −j}; applying to each element of the spreading sequence, based on the value of the element, for which randomization is determined to be applied, one or more randomization techniques to the coded data stream; modulating the coded data stream; and transmitting the modulated data stream.
 20. The non-transitory computer readable medium of claim 19, wherein the operations further comprise: performing bit-level repetition on the coded data stream for each element of the spreading sequence for which randomization is determined to be applied.
 21. The non-transitory computer readable medium of claim 19, wherein the operations further comprise: applying a spreading sequence to the modulated data stream. 